package com.cf.game.stage.event;

import com.cf.Event;
import com.cf.core.spirit.Spiriter;
import com.cf.core.stage.Stage;
import com.cf.game.stage.npc.EnumStudentStatue;

/**
 * game-server-PunishEvent
 * 学生拳击event
 *
 * @author <a href="2428922347@qq.com">Zhu mingming</a>
 * @info
 * @since 2018/5/7 下午 07:54
 */
public class BeatEvent implements Event {

    public BeatEvent(Spiriter self) {
        this.self = self;
    }

    private Spiriter self;

    /**
     * 自己是否已需要响应此消息
     * 当处于正常情况下的时候，自己响应自己的beat事件，当处于PUNISH
     *
     * @param spiriter
     * @return
     */
    public boolean needResponse(String statue, Spiriter spiriter, Stage stage) {
        if (EnumStudentStatue.COMMON.getStatue().equals(stage.getStatue())) {
            if (EnumStudentStatue.COMMON.getStatue().equals(statue)) {
                return spiriter.equals(self);
            } else {
                //在大环境是COMMON,自己是PUNISH时,不需要响应
                return false;
            }
        } else {
            if (EnumStudentStatue.PUNISH.getStatue().equals(statue)) {
                return !spiriter.equals(self);
            } else {
                return false;
            }
        }
    }

    public Spiriter getSelf() {
        return self;
    }

    public void setSelf(Spiriter self) {
        this.self = self;
    }
}
